package com.wangshouyu.mp.authorize;

import java.text.MessageFormat;

import static com.wangshouyu.mp.base.constant.UrlConstant.AUTHORIZE_URL;

/**
 * @author 王守钰
 * @date 2020年12月18日 23:35
 * @description 认证处理器
 */
public class AuthorizeHandler {

    private AuthorizeHandler() {
    }

    /**
     * 基础跳转信息
     * @param appId 应用id
     * @param redirectUri 跳转地址
     * @param state 参数
     * @return 地址
     */
    public static String base(String appId, String redirectUri, String state){
        return authorize(appId, redirectUri, state, AuthorizeScope.SNSAPI_BASE);
    }

    /**
     * 获取用户信息跳转信息
     * @param appId 应用id
     * @param redirectUri 跳转地址
     * @param state 参数
     * @return 地址
     */
    public static String userinfo(String appId, String redirectUri, String state){
        return authorize(appId, redirectUri, state, AuthorizeScope.SNSAPI_USERINFO);
    }

    /**
     * 转换地址
     * @param appId 应用id
     * @param redirectUri 跳转地址
     * @param state 跳转参数
     * @param scope 应用域
     * @return 地址信息
     */
    private static String authorize(String appId, String redirectUri, String state, AuthorizeScope scope) {
        return MessageFormat.format(AUTHORIZE_URL,
                appId,
                redirectUri,
                scope.getScope(),
                state);
    }

}
